// 日期工具函数

import moment from 'moment';

/**
 * 获取本周/本月/本年的第一天和最后一天
 * 获取指定年的第一天和最后一天 ('year', 2023)
 * @returns [ '2024-06-17', '2024-06-23' ]
 */
export const getTimePeriodData = (type: 'week' | 'month' | 'year', data?: number) => {
  if (type === 'week') {
    //设置周一为一周的第一天（moment默认是周日）
    moment.updateLocale('en', {
      week: {
        dow: 1,
      },
    });
  }

  const now = moment();
  const dataArr = [];
  if (type === 'year' && data) {
    dataArr[0] = moment().year(data).startOf(type).format('YYYY-MM-DD');
    dataArr[1] = moment().year(data).endOf(type).format('YYYY-MM-DD');

    return dataArr;
  }

  dataArr[0] = now.clone().startOf(type).format('YYYY-MM-DD');
  dataArr[1] = now.clone().endOf(type).format('YYYY-MM-DD');
  return dataArr;
};

//获取某一天几天前或几天后的日期
export const getFewdaysDate = (date: string, num: number) => {
  let time: string = '';
  if (num > 0) {
    time = moment(date).add(num, 'days').format('YYYY-MM-DD HH:mm:ss');
  } else {
    time = moment(date).subtract(num, 'days').format('YYYY-MM-DD HH:mm:ss');
  }
  return time;
};

//获取当前日期时间
export const getNowDate = (): string => {
  return moment().format('YYYY-MM-DD HH:mm:ss');
};
